#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
using namespace std;

//class Solution {
//public:
//	int myAtoi(string str) 
//	{
//		int ret = 0;
//		int i = 0;
//		int end = str.size() - 1;
//		while (i <= end 
//			&& str[i] == ' '
//			&& (str[i] != '-' && str[i] != '+'))
//		{
//			i++;
//		}
//
//		if ((str[i] > '9' || str[i] < '0')&& (str[i] != '-'&& str[i] != '+'))
//		{
//			return 0;
//		}
//
//		int num = 1;
//		if (str[i] == '-')
//		{
//			num = -1;
//			i++;
//		}
//		else if (str[i] == '+')
//		{
//			i++;
//		}
//
//		//string s;
//		//while (i <= end && str[i] >= '0' && str[i] <= '9')
//		//{
//		//	s += str[i];
//		//	i++;
//		//}
//
//		//reverse(s.begin(), s.end());
//
//		while (i < str.size() && str[i] >= '0' && str[i] <= '9')
//		{
//			if (ret > 2147438647/10
//				|| ret == 2147438647 / 10
//				&& str[i] >'7')
//			{
//				return pow(2, 31) - 1;
//			}
//
//
//			if (ret < -2147483648/10
//					|| ret == -2147483648 / 10&& str[i]>'8')
//			{
//				return -pow(2, 31);
//			}
//			ret =  ret * 10+(str[i] - '0')*num ;
//			
//			i++;
//		}
//
//		return ret;
//
//	}
//};
////
//int main()
//{
//	//Solution s;
//	//cout<<s.myAtoi("2147483648");
//	//cout << pow(2.0, 31.0) - 1 << endl;
//	//cout << -pow(2.0, 31.0) << endl;
//
//	return 0;
//}


int main1()
{
	string s("Hello World!");
	//string s1("(& v &)");

	string s1;
	string s2 = "";
	cout << s1.size() << endl;
	cout << s2.size() << endl;

	//cout << s1.size() << endl;
	//cout << s1.capacity() << endl;
	//s1.resize(200);
	//cout << s1.size() << endl;
	//cout << s1.capacity() << endl;
	//s1.resize(10);
	//cout << s1.size() << endl;
	//cout << s1.capacity() << endl;

	//s1[20] = 6;
	s1.reserve(17);
	cout << s1.size() << endl;
	cout << s1.capacity() << endl;

	//cout << s1.capacity() << endl;
	//s1.reserve(100);
	//cout << s1.capacity() << endl;


	//s1.insert(s1.begin(), s.begin() + 6, s.end());
	//cout << s1<<endl;
	//s1.erase(6);
	//cout << s1<<endl;
	//s.replace(5, 1, s1);
	//cout << s << endl;

	//string s2;
	//int sz = s2.capacity();
	//for (int i = 0; i < 100; i++)
	//{
	//	s2.push_back('1');
	//	if (sz != s2.capacity())
	//	{
	//		sz = s2.capacity();
	//		cout << "capacity changed:" << sz << ' '<<"size:"<<s2.size()<<endl;
	//	}
	//	//cout << s2 << endl;
	//}

	//s1.append("damn!");
	//cout << s1;

	//string s2("4634523188646843453");
	//sort(s2.begin(), s2.end());
	//cout << s2;

	//string::iterator itr = s1.begin();
	//string::reverse_iterator ritr = s1.rbegin();
	//while (itr != s1.end())
	//{
	//	cout << *itr;
	//	itr++;
	//}
	//while (ritr != s1.rend())
	//{
	//	cout << *ritr;
	//	ritr++;
	//}
	//cout << s1.size() << ' ' << s1.length()<<endl;
	//for (int i = s1.size() - 1; i >= 0
	//	; i--)
	//{
	//	cout << s1[i];

	//}
	//cout << s1<<endl;
	//cin >> s1;
	//cout << s1;

	return 0;
}


//class Solution {
//public:
//	int myAtoi(string str) {
//
//		int ret = 0;
//		auto ritr = str.rbegin();
//		int i = 0;
//
//		while (ritr != str.rend() && (*ritr < '0' || *ritr>'9'))
//		{
//			ritr++;
//		}
//
//		while (ritr != str.rend() && *ritr != ' ' && *ritr != '-' && *ritr != '+')
//		{
//			ret += (*ritr-'0')*pow(10,i);
//			ritr++;
//			i++;
//		}
//		if (ritr!= str.rend() && *ritr == '-')
//		{
//			ret = -ret;
//		}
//		if (ritr!= str.rend() && *ritr >'A'&&*ritr<'z')
//		{
//			ret = 0;
//		}
//
//		return ret;
//
//	}
//}